package com.gsoe.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gsoe.auth.dto.*;
import com.gsoe.auth.vo.*;
import com.gsoe.base.model.PageResult;
import com.gsoe.base.model.Result;
import com.gsoe.base.model.User;

import java.util.List;

public interface UserInfoService extends IService<User> {
    UserInfoVO getUserInfo(Long id);

    User doLogin(UserLoginDTO userLoginDTO);

    CodeVO getCodeImage();

    List<String> getPowerListByRoleName(String roleName);

    List<String> getRoleList(Long aLong);

    void doRegister(UserRegisterDTO userRegisterDTO);

    PageResult<UserVO> getUserList(UserDTO userDTO);

    void delUser(Long id);

    Result<UserRoleVO> getRoleListByid(Long id);


    void saveRoleList(UserRoleDTO dto);

    void userDisable(UserDisableDTO userDisableDTO);

    void saveUserPermission(UserPermissionDTO userPermissionDTO);

    PageResult<UserProblemCollectVO> getUserProblemCollect(Integer pageNo, Integer pageSize);

    void addUserProblemCollect(UserProblemCollectDTO userProblemCollectDTO);

    void deleteUserProblemCollect(Long problemId);

    List<Long> getUserAllProblemCollect(Long id);

    void updateUserInfo(UpdateUserDTO updateUserDTO);

    void getEmailCode(String email);
}
